package d0517_集合;

import java.io.*;
import java.util.*;
import java.util.Map.Entry;

public class Map集合 {
	
	public static void main(String[] args) throws FileNotFoundException, IOException {
		
		System.out.println("========= HashMap 无序 key 不重复 ==========");
		
		Map<String, String> map = new HashMap<>();
		map.put("0734", "衡阳");
		map.put("0732", "株洲");
		map.put("0733", "湘潭");
		map.put("0732", "株洲");
		map.put("0733", "湘潭");
		map.put("0731", "长沙");
		map.put("0735", "常德");
		map.put("0735", "益阳");  // 添加相同键,会替换值
		System.out.println(map);		
		
		System.out.println("========= LinkedHashMap 有序  key 不重复==========");
		map = new LinkedHashMap<>();
		map.put("0734", "衡阳");  //  key   value
		map.put("0732", "株洲");
		map.put("0733", "湘潭");
		map.put("0732", "株洲");
		map.put("0733", "湘潭");
		map.put("0731", "长沙");
		map.put("0735", "常德");
		map.put("0735", "益阳");  // 添加相同键,会替换值
		map.put("0736", "常德");
		map.put("0737", "益阳");
		System.out.println(map);
		
		System.out.println("========= Map 集合的循环迭代 ==========");
		// Entry 对象 封装了 Map 集合中的一组键值对
		Set<Entry<String, String>> entrySet = map.entrySet(); // map 集合转成 set集合
		for(Entry<String, String> e : entrySet) {
			System.out.println(e.getKey() + " : " + e.getValue());
		}
		
		// 必须存放 字符串 类型的键值对 , 保存文本数据
		Properties prop = new Properties();
		prop.setProperty("0734", "衡阳");  //  key   value
		prop.setProperty("0732", "株洲");
		prop.setProperty("0733", "湘潭");
		prop.setProperty("0732", "株洲");
		prop.setProperty("0733", "湘潭");
		prop.setProperty("0731", "长沙");
		System.out.println(prop.getProperty("0734"));
		// Properties 支持文件存储
		// new FileOutputStream("d:/a.properties") 文件输出流
		prop.store(new FileOutputStream("d:/a.properties"), "save data");
		
		
				
	}
	
	
	
	

}
